1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license ( the "Software" ) to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 module derelict.udis86.functions; 29 30 import std.stdint; 31 import std.c.stdio; 32 import derelict.udis86.types; 33 34 extern(C) nothrow 35 { 36 alias void function(ud*) da_ud_init; 37 alias void function(ud*, uint8_t) da_ud_set_mode; 38 alias void function(ud*, uint64_t) da_ud_set_pc; 39 alias void function(ud*, input_hook_t) da_ud_set_input_hook; 40 alias void function(ud*, const (uint8_t)*, size_t) da_ud_set_input_buffer; 41 alias void function(ud*, FILE*) da_ud_set_input_file; 42 alias void function(ud*, uint) da_ud_set_vendor; 43 alias void function(ud*, translator_t) da_ud_set_syntax; 44 alias void function(ud*, size_t) da_ud_input_skip; 45 alias int function(const ud*) da_ud_input_end; 46 alias uint function(ud*) da_ud_decode; 47 alias uint function(ud*) da_ud_disassemble; 48 alias void function(ud*) da_ud_translate_intel; 49 alias void function(ud*) da_ud_translate_att; 50 alias const(ubyte)* function(const ud* u) da_ud_insn_asm; 51 alias const(uint8_t)* function(const ud* u) da_ud_insn_ptr; 52 alias uint64_t function(const ud*) da_ud_insn_off; 53 alias const(ubyte)* function(ud*) da_ud_insn_hex; 54 alias uint function(const ud* u) da_ud_insn_len; 55 alias const(ud_operand)* function(const ud *u, uint n) da_ud_insn_opr; 56 alias int function(const ud_operand *opr) da_ud_opr_is_sreg; 57 alias int function(const ud_operand *opr) da_ud_opr_is_gpr; 58 alias const(ubyte)* function(ud_mnemonic_code c) da_ud_lookup_mnemonic; 59 alias void function(ud*, void*) da_ud_set_user_opaque_data; 60 alias void* function(const ud*) da_ud_get_user_opaque_data; 61 alias void function(ud *u, char *buf, size_t size) da_ud_set_asm_buffer; 62 alias void function(ud *u, sym_resolver_t) da_ud_set_sym_resolver; 63 } 64 65 __gshared 66 { 67 da_ud_init ud_init; 68 da_ud_set_mode ud_set_mode; 69 da_ud_set_pc ud_set_pc; 70 da_ud_set_input_hook ud_set_input_hook; 71 da_ud_set_input_buffer ud_set_input_buffer; 72 da_ud_set_input_file ud_set_input_file; 73 da_ud_set_vendor ud_set_vendor; 74 da_ud_set_syntax ud_set_syntax; 75 da_ud_input_skip ud_input_skip; 76 da_ud_input_end ud_input_end; 77 da_ud_decode ud_decode; 78 da_ud_disassemble ud_disassemble; 79 da_ud_translate_intel ud_translate_intel; 80 da_ud_translate_att ud_translate_att; 81 da_ud_insn_asm ud_insn_asm; 82 da_ud_insn_ptr ud_insn_ptr; 83 da_ud_insn_off ud_insn_off; 84 da_ud_insn_hex ud_insn_hex; 85 da_ud_insn_len ud_insn_len; 86 da_ud_insn_opr ud_insn_opr; 87 da_ud_opr_is_sreg ud_opr_is_sreg; 88 da_ud_opr_is_gpr ud_opr_is_gpr; 89 da_ud_lookup_mnemonic ud_lookup_mnemonic; 90 da_ud_set_user_opaque_data ud_set_user_opaque_data; 91 da_ud_get_user_opaque_data ud_get_user_opaque_data; 92 da_ud_set_asm_buffer ud_set_asm_buffer; 93 da_ud_set_sym_resolver ud_set_sym_resolver; 94 } 95 96 alias ud_translate_intel UD_SYN_INTEL; 97 alias ud_translate_att UD_SYN_ATT;